package org.edu.modules.stu.base.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.edu.common.base.BaseEntity;
import java.sql.Date;
import org.hibernate.validator.constraints.Length;

import java.io.Serializable;

/**
 * entity-学生学籍异动表
 */
@TableName("ve_stu_change")
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="学生学籍异动表对象", description="ve_stu_change")
public class VeStuChange extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableField
    @ApiModelProperty(value = "学号")
    @Length(max = 20)
        private String code;

    @TableField
    @ApiModelProperty(value = "姓名")
    @Length(max = 20)
        private String name;

    @TableField
    @ApiModelProperty(value = "学生id")
        private Integer stuId;

    @TableField
    @ApiModelProperty(value = "异动类别码;1=>'退学',2=>'休学',3=>'转专业',4=>'留级',5=>'转入',6=>'转出',")
    @Length(max = 50)
        private String ydlbm;

    @TableField
    @ApiModelProperty(value = "异动日期")
        @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
        private Date ydDate;

    @TableField
    @ApiModelProperty(value = "异动原因")
    @Length(max = 65535)
        private String ydMsg;

    @TableField
    @ApiModelProperty(value = "审批日期")
        @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
        private Date spDate;

    @TableField
    @ApiModelProperty(value = "审批文号")
    @Length(max = 50)
        private String spwh;

    @TableField
    @ApiModelProperty(value = "经办人工号")
    @Length(max = 30)
        private String jbrgh;

    @TableField
    @ApiModelProperty(value = "异动来源学校码")
    @Length(max = 50)
        private String ydlyxxm;

    @TableField
    @ApiModelProperty(value = "异动去向学校码")
    @Length(max = 50)
        private String ydqxxm;

    @TableField
    @ApiModelProperty(value = "异动说明")
    @Length(max = 65535)
        private String ydsm;

    @TableField
    @ApiModelProperty(value = "")
        private Integer ofalId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 255)
        private String ofalText;

    @TableField
    @ApiModelProperty(value = "原专业码")
        private Integer ospecId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 255)
        private String ospecText;

    @TableField
    @ApiModelProperty(value = "原班号")
        private Integer objId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 255)
        private String objText;

    @TableField
    @ApiModelProperty(value = "原年级")
        private Integer ogradeId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 255)
        private String ogradeTest;

    @TableField
    @ApiModelProperty(value = "院系")
        private Integer falId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 255)
        private String falText;

    @TableField
    @ApiModelProperty(value = "专业码")
        private Integer specId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 255)
        private String specText;

    @TableField
    @ApiModelProperty(value = "班级")
        private Integer bjId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 255)
        private String bjText;

    @TableField
    @ApiModelProperty(value = "年级")
        private Integer gradeId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 255)
        private String gradeText;

    @TableField
    @ApiModelProperty(value = "异动恢复状态;1已恢复")
        private Integer isRecover;

    @TableField
    @ApiModelProperty(value = "异动恢复操作人id")
        private Integer recoverUserId;

    @TableField
    @ApiModelProperty(value = "异动恢复时间")
        @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
        private Date recoverTime;
}
